// 设置动作与ui的连接函数设置–connect.js
import http from "@/api/http";
import {receiveLogin} from "./action";

/**
 * 登录
 * @param data
 * @returns {function(*): (Q.Promise<any> | * | undefined | Promise<void> | Promise<any>)}
 */
function submitLogin(data) {
    return dispatch => {
        return http.post("/login.do", data).then(res => {
            dispatch(receiveLogin(res));
        }).catch(err => {});
    }
}

export const mapLogin = {
    // 把store中的数据映射到这个组件变成props，所以如果要取store中的数据就需要通过this.props.参数
    // 每当store state发生变化时，就被调用。接收整个store state，并且返回一个该组件所需要的数据对象
    mapStateToProps (state) {
        return state.getLogin;
    },
    //mapDispatchToProps可以接收 dispatch() 方法并返回期望注入到展示组件的 props 中的回调方法。
    mapDispatchToProps (dispatch) {
        return {
            handleLogin: (data) => {
                return submitLogin(data)(dispatch)
            }
        }
    }
}
